@echo off
title 阿里云ECS WebSocket服务器快速部署

echo ========================================
echo    阿里云ECS WebSocket服务器部署
echo ========================================
echo.

echo 请按照以下步骤进行部署：
echo.

echo 步骤1: 购买阿里云ECS实例
echo - 访问: https://ecs.console.aliyun.com/
echo - 选择配置: 2核4GB内存，Ubuntu 20.04 LTS
echo - 带宽: 5Mbps以上
echo - 安全组: 开放端口 22, 80, 443, 8080
echo.

echo 步骤2: 获取ECS实例信息
echo - 记录公网IP地址
echo - 记录root密码
echo.

set /p ecs_ip="请输入ECS公网IP地址: "
set /p ecs_password="请输入root密码: "

echo.
echo 步骤3: 测试SSH连接
echo 正在测试连接到 %ecs_ip%...

REM 测试SSH连接
ssh -o ConnectTimeout=10 root@%ecs_ip% "echo 'SSH连接测试成功'" 2>nul
if %errorlevel% neq 0 (
    echo 错误: 无法连接到ECS实例
    echo 请检查:
    echo 1. IP地址是否正确
    echo 2. 安全组是否开放22端口
    echo 3. 密码是否正确
    pause
    exit /b 1
)

echo SSH连接测试成功！
echo.

echo 步骤4: 上传部署文件
echo 正在上传文件到ECS实例...

REM 创建远程目录
ssh root@%ecs_ip% "mkdir -p /root/websocket_server"

REM 上传文件
scp websocket_server.py root@%ecs_ip%:/root/websocket_server/
scp requirements.txt root@%ecs_ip%:/root/websocket_server/
scp deploy_to_aliyun.sh root@%ecs_ip%:/root/websocket_server/

if %errorlevel% neq 0 (
    echo 错误: 文件上传失败
    pause
    exit /b 1
)

echo 文件上传成功！
echo.

echo 步骤5: 部署WebSocket服务器
echo 正在部署服务器...

REM 执行部署脚本
ssh root@%ecs_ip% "cd /root/websocket_server && chmod +x deploy_to_aliyun.sh && bash deploy_to_aliyun.sh"

if %errorlevel% neq 0 (
    echo 错误: 部署脚本执行失败
    pause
    exit /b 1
)

echo 部署脚本执行完成！
echo.

echo 步骤6: 检查服务状态
echo 正在检查服务状态...

REM 检查服务状态
ssh root@%ecs_ip% "systemctl status patient-websocket.service --no-pager"

echo.
echo 步骤7: 配置监控脚本
echo 正在设置监控脚本...

REM 设置监控脚本
ssh root@%ecs_ip% "cd /root/websocket_server && chmod +x monitor_websocket.sh && nohup ./monitor_websocket.sh > /dev/null 2>&1 &"

echo 监控脚本已启动！
echo.

echo 步骤8: 更新Android客户端配置
echo 正在更新客户端配置...

REM 更新Android客户端配置
python update_client_config.py --update %ecs_ip%:8080
python update_client_config.py --create-ui

echo 客户端配置更新完成！
echo.

echo 步骤9: 测试连接
echo 正在测试WebSocket连接...

REM 测试连接
ssh root@%ecs_ip% "netstat -tlnp | grep 8080"

echo.
echo 步骤10: 生成部署报告
echo 正在生成部署报告...

REM 生成部署报告
echo 阿里云ECS部署完成报告 > ALIYUN_DEPLOYMENT_REPORT.txt
echo 部署时间: %date% %time% >> ALIYUN_DEPLOYMENT_REPORT.txt
echo ECS实例IP: %ecs_ip% >> ALIYUN_DEPLOYMENT_REPORT.txt
echo WebSocket端口: 8080 >> ALIYUN_DEPLOYMENT_REPORT.txt
echo 服务名称: patient-websocket.service >> ALIYUN_DEPLOYMENT_REPORT.txt
echo. >> ALIYUN_DEPLOYMENT_REPORT.txt
echo 管理命令: >> ALIYUN_DEPLOYMENT_REPORT.txt
echo - 查看状态: ssh root@%ecs_ip% "systemctl status patient-websocket.service" >> ALIYUN_DEPLOYMENT_REPORT.txt
echo - 查看日志: ssh root@%ecs_ip% "journalctl -u patient-websocket.service -f" >> ALIYUN_DEPLOYMENT_REPORT.txt
echo - 重启服务: ssh root@%ecs_ip% "systemctl restart patient-websocket.service" >> ALIYUN_DEPLOYMENT_REPORT.txt
echo. >> ALIYUN_DEPLOYMENT_REPORT.txt
echo 客户端配置: >> ALIYUN_DEPLOYMENT_REPORT.txt
echo - WebSocket地址: ws://%ecs_ip%:8080 >> ALIYUN_DEPLOYMENT_REPORT.txt
echo - HTTP地址: http://%ecs_ip%:8080 >> ALIYUN_DEPLOYMENT_REPORT.txt

echo.
echo ========================================
echo           部署完成！
echo ========================================
echo.
echo 部署信息:
echo - ECS实例IP: %ecs_ip%
echo - WebSocket端口: 8080
echo - 服务名称: patient-websocket.service
echo.
echo 下一步操作:
echo 1. 重新编译Android APK
echo 2. 安装到设备测试
echo 3. 在应用中使用"服务器设置"功能
echo.
echo 管理命令:
echo - 查看状态: ssh root@%ecs_ip% "systemctl status patient-websocket.service"
echo - 查看日志: ssh root@%ecs_ip% "journalctl -u patient-websocket.service -f"
echo - 重启服务: ssh root@%ecs_ip% "systemctl restart patient-websocket.service"
echo.
echo 详细报告已保存到: ALIYUN_DEPLOYMENT_REPORT.txt
echo.
pause 